package com.wtb.javatool.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.wtb.javatool.entity.Catalog;
import com.wtb.javatool.exception.EvaluationException;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;

@Service
public interface CatalogService extends IService<Catalog> {

    // 查询帮区所有目录
    List<Catalog> getCatalogAndAssetsByBandId(Long bandId, Long schoolId) throws EvaluationException;

    // 根据ID查询
    Catalog getById(Long id);

    // 查子目录
    List<Catalog> getByParentId(Long parentId);

    // 根据level查询目录
    List<Catalog> getByLevel(Integer level);

    // 插入
    Long insert(Catalog catalog);

    // 更新
    int update(Catalog catalog);

    // 删除目录及其子目录与资源
    int delete(Long id);

    // 批量根据Id列表删除批量删除目录
    int deleteMany(List<Long> ids);

    Boolean cloneCatalog(Long id, Long bandId);

    //根据目录id计算目录下所有子目录的资源数目
    HashMap<String, Long> calculateNumberByCatalogId(Long catalogId) throws EvaluationException;

    //根据目录bandId计算目录下所有子目录的资源数目
    HashMap<String, Long> calculateNumberByBandId(Long bandId, Long schoolId);
}

